# cf114e8aed595217aa1af26769aba8bc
def bubble_sort(arr):
    """
    冒泡排序算法实现
    参数:
        arr: 需要排序的列表
    返回:
        排序后的列表
    """
    n = len(arr)
    # 外层循环控制需要进行多少轮比较
    for i in range(n):
        # 内层循环进行相邻元素比较和交换
        # 每一轮结束后，最大的元素会被移动到最右边
        # 因此每轮比较的次数可以减少i次
        for j in range(0, n - i - 1):
            # 如果左边的元素大于右边的元素，则交换它们
            if arr[j] > arr[j + 1]:
                arr[j], arr[j + 1] = arr[j + 1], arr[j]
    return arr

# 测试代码
if __name__ == "__main__":
    # 创建多个测试用例
    test_array1 = [64, 34, 25, 12, 22, 11, 90]
    test_array2 = [5, 2, 8, 1, 9, 3]
    
    print("测试用例1:")
    print("原始数组:", test_array1)
    print("排序后数组:", bubble_sort(test_array1))
    
    print("\n测试用例2:")
    print("原始数组:", test_array2)
    print("排序后数组:", bubble_sort(test_array2)) 